A communication network, such as the Internet or a local area network (LAN), allows the exchange of data between two or more terminals. In recent years, the development of high-speed or broadband networks has facilitated the exchange of data at higher rates, thereby making real-time or nearly real-time communication through a communication network an effective mode of communication. For example, two terminals accessible to a common network not only may exchange non-real-time data such as e-mails, but also may communicate via voice or even video and exchange other types of data in real time.
For example, one of the popular forms of such communication includes voice over internet-protocol (VoIP). Due to its low cost and broad applications, VoIP has become more and more popular. VoIP allows the users of two terminals, such as computers or network-compatible phones, to communicate via a data network or Internet without relying on the traditional landlines.
For two terminals to exchange data, including real-time data, the two terminals can locate each other and communicate directly or indirectly through a third party. For example, two terminals in a public network can locate each other if both of them are properly registered with the Internet-protocol (“IP”) addresses. However, for security reasons, some terminals may be hidden from a public network and cannot be reached with its IP address alone. For example, a terminal may communicate through a network address translator (“NAT”) or another medium of similar effect. As a result, the terminal may not be identifiable by its IP address from the packets being sent from the terminal because the IP address has been masked. To allow efficient exchange of voice and other types of data between two terminals, there is a need for improved devices or methods for providing a communication channel between two or more terminals.